Many of the commands work on the current set of selected files which can be either the set of marked files (if any file is marked and marks are not ignored) or whichever file or directory the cursor is on.
If a directory is selected but the command cannot be applied to a directory, then it will be applied to the set of files under this directory which are in the ‘*cvs*’ buffer.
Furthermore, each
command only operates on a subset of the selected files,
depending on whether or not the command is applicable
to each file (based on the file's status). For example,
cvs-mode-commit is not applicable to a file whose
status is ‘Need-Update’. If it should happen that
PCL-CVS guesses the applicability wrong, you can override it with
the special prefix cvs-mode-force-command normally
bound to M-f (and file a bug report). The
applicability rule can be slightly changed with
cvs-allow-dir-commit and
cvs-force-dir-tag.
By default, marks are always in effect (you may change this,
however, by setting the variable
cvs-default-ignore-marks) except for the commands
that ‘tag’ or
‘diff’ a file
(which can be changed with the variable
cvs-invert-ignore-marks).
In addition, you may use the special prefix
cvs-mode-toggle-marks normally bound to <T> to
toggle the use of marks for the following command.
This scheme might seem a little complicated, but once one gets used to it, it is quite powerful.
For commands to mark and unmark files, see Marking files.